import socket
socket.setdefaulttimeout(20)  # 设置socket层的超时时间20秒
import socks
# 根据自己的socks设置，修改端口
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 10808)
socket.socket = socks.socksocket
import ssl
ssl._create_default_https_context = ssl._create_unverified_context  # 取消全局认证
from pytube import YouTube
import os

# test proxy
# import urllib.request
# print(urllib.request.urlopen("https://www.google.com").getcode())

cwd = os.getcwd()
# url = 'https://www.youtube.com/watch?v=7RL1ztbdgMY'
# url = 'https://www.youtube.com/watch?v=jKcTXTLqwZc'
url = 'https://youtube.com/watch?v=2lAe1cqCOXo'
result = YouTube(url)
print(result.streams.all())
'''
print(url + '  ' + result.title)
# 下载视频，137 表示1080p
# result.streams.get_by_itag(137).download('E:/01_python/audio/video')

# 下载音频 251表示160kbps的音频
result.streams.get_by_itag(251).download(cwd + '/audio')

# 转换webm的音频为opus格式
# windows需要下载mkvtoolnix，将mkvextract文件复制到当前目录
# archlinux，使用sudo pacman -S mkvtoolnix-cli安装mkvextract
for i in os.listdir(cwd + '/audio'):
    print(i)
    os.system('mkvextract tracks audio/' + i + ' 0:audio/' + i[:-5] + '.opus')
    os.remove('audio/' + i)
'''